package com.hrb.mall.mapper;

import com.hrb.mall.entity.Address;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @version 1.0
 * @Author YangJiaQuan_hrbnu
 * @Date 2023/10/6 14:56
 */
@Mapper
public interface AddressMapper {

    //插入收货地址
    Integer insert(Address address);

    //根据id统计总的收获地址数量
    Integer countByUid(Integer uid);

    /**
     * 根据用户的id查询用户的收货地址数据
     *
     * @param uid 用户id
     * @return 收货地址数据
     */
    List<Address> findByUid(Integer uid);

    /**
     * 根据aid查询收获地址数据
     *
     * @param aid 收货地址id
     * @return 收货地址数据，如果没有找到返回null值
     */
    Address findByAid(Integer aid);

    /**
     * 根据用户的uid值来修改用户的收获地址设置为非默认
     *
     * @param uid 用户的id值
     * @return 受影响的行数
     */
    Integer updateNonDefaultByUid(Integer uid);

    Integer updateDefaultByAid(
            @Param("aid") Integer aid,
            @Param("modifiedUser") String modifiedUser,
            @Param("modifiedTime") Date modifiedTime);


    /**
     * 根据收货地址id删除收货地址数据
     * @param aid 收货地址的id
     * @return 受影响的行数
     */
    Integer deleteByAid(Integer aid);

    /**
     * 根据用户uid查询当前用户最后一次被修改的收货地址数据
     * @param uid 用户id
     * @return 收货地址数据
     */
    Address findLastModified(Integer uid);


}


